Desk top and notebook personal computers have become quite powerful in recent years, thus enabling the accomplishment of sophisticated tasks. Such computers typically include one or two hard disk drives for storage of programs and large data files. Such disk drives are typically available with present data storage capacities in the range of 2-30 gigabytes. While such capacities are adequate for many applications, there exists applications involving tasks such as very large data bases, video processing and graphics processing where even larger data storage capacity is desirable, and sometimes essential.
As a result of the consumer demand for such high capacity data storage, data storage systems have been developed that contain one, or typically several, hard disk drives. Such data storage systems may be connected to a computer to greatly increase the data storage capacity that is available to the computer. While such data storage systems solve the capacity problem, they have a disadvantage in that only one computer can access the stored data at one time. In many applications, more than one computer user would like to have simultaneous access to the same data, but this cannot be accommodated with present data storage systems.
A data storage system in accordance with the invention includes an interface that is connectable via a data bus system to a plurality of host data processing systems, at least one data storage device, and at least one bridge, each bridge being coupled to an associated one of the at least one data storage device and to the interface, each bridge establishing login connections with a plurality of the host data processing systems and simultaneously maintaining login connections with a plurality of the host data processing systems, and each bridge making data accesses to the associated data storage device in response to access request information received from a plurality of host data processing systems.
In a preferred embodiment, the data storage system is connectable to up to four Macintosh personal computers over a packet switched FireWire IEEE P 1394a standard protocol hot pluggable serial bus to form a storage area network. The data storage system includes up to 6 data storage devices, which are each implemented as an ATA/ATAPI hard drive having at present a capacity up to about 45 gigabytes. The data storage system includes a network of data bus hubs that provide selectable connection over the serial data bus between each computer and up to 6 ATA to serial bus bridges. Each bridge connects to a different data storage device and provides required protocol conversions between the communication protocols used by the data storage devices and the communication protocols used on the serial bus.
The serial bus performs a bus reset in response to each change in status of a node or device connected to the bus and at such other times that might be commanded by a bus component. Each bridge responds to a bus reset by logging in any host data processing systems that request a login to the data storage system up to a selected maximum of 4 hosts. The selected maximum could of course vary without departing from the invention. Once a host has logged into one of the bridges, the host has read and write access to the data storage device that is connected to the bridge.
In the preferred embodiment, the data storage devices are initialized by assigning volume names or identifiers to different portions of the storage capacity. A given portionof the storage capacity can be assigned to only one volume, but the volume assigned to a given volume name can otherwise be selected with virtually no restriction. A volume can extend across multiple data storage devices. Each volume appears logically to the host data processing systems to be a different disk drive. In typical configurations, either all of the data storage devices in the data storage system are assigned to a single volume or each data storage device is assigned a different volume designator, however, the volume assignments need not be so restricted.
When logging in, each requesting host data processing system logs in to a specific volume of the data storage capacity. The bridges that are associated with that volume thereafter retain a record of the log in that identifies the logged in host and the host thereafter has access to the selected volume, even if another host is simultaneously logged in to the same volume. Two or more hosts can therefore have simultaneous concurrent access to the same volume. Because neither the serial bus nor the physical interfaces to the disk drive data storage devices permit true simultaneous accesses, any access request that is received while a data storage device is busy responding to a prior access is placed in a FIFO queue and responded to in order.
To prevent the chaos that might occur in application programs if multiple hosts were performing concurrent write operations to the same file, it is desirable that a protocol be implemented among the host computers that precludes simultaneous login to the same volume with xe2x80x9cwritexe2x80x9d privileges. However, the data storage system will accept concurrent overlapping write requests to the same volume from multiple logged in hosts if such write requests are received. There is normally no problem if multiple hosts implement multiple concurrent read accesses to the same volume.